﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
namespace PlantsVsZombies
{
    public enum PlantStatus { Normal, Attack };

    public abstract class Plant : Character
    {
        //
        protected Sprite[] _bullet;
        public Sprite[] Bullet
        {
            get { return _bullet; }
            set { _bullet = value; }
        }
        //
        private float _rechargeTime; // tinh bang giay.
        private float _charging;
        private float _blood;
        private int _cost;
        
        
        protected PlantStatus _plantStatus;

        //public float RechargeTime
        //{
        //    get { return _rechargeTime; }
        //    set { _rechargeTime = value; }
        //}

        //public float Charging
        //{
        //    get { return _charging; }
        //    set { _charging = value; }
        //}

        //public float Blood
        //{
        //    get { return _blood; }
        //    set { _blood = value; }
        //}

        //public int Cost
        //{
        //    get { return _cost; }
        //    set { _cost = value; }
        //}
       

        public PlantStatus PlantStatus
        {
            get { return _plantStatus; }
            set { _plantStatus = value; }
        }

        public int Cost
        {
            get { return _cost; }
            set { _cost = value; }
        }

        public float Blood
        {
            get { return _blood; }
            set { _blood = value; }
        }

        public float Charging
        {
            get { return _charging; }
            set { _charging = value; }
        }

        public float RechargeTime
        {
            get { return _rechargeTime; }
            set { _rechargeTime = value; }
        }


        public abstract Plant Clone();
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            
            
        }
        public virtual void Shoot(Ghost ghost, GameTime gameTime)
        {
            
        }
        public virtual void AddBullet(Sprite[] bullet, int n)
        {
            
        }
        

        
        
       
    }
}
